package com.xzz.sort;

import java.util.Arrays;

/**
 * @author: hhz
 * @create: 2021-12-31 10:52
 **/
public class InsertSort {
    public static void main(String[] args) {
        int[] arr = new int[]{4, 6, 8, 5, 9, 2, 3, 7};
        insertSort(arr);
        System.out.println(Arrays.toString(arr));
    }
    public static void insertSort(int[] arr) {
        int i,j,k;
        //为a[i]在前面的a[0...i-1]有序区间中找一个合适的位置
        for (i = 1; i <arr.length ; i++) {
            for (j=i-1;j>=0;j--){
                if(arr[j]<arr[i]){
                    break;
                }
            }
            //如找到了一个合适的位置
            if(j!=i-1){
                //将比a[i]大的数据向后移
                int temp = arr[i];
                for (k=i-1;k>j;k--){
                    arr[k+1] = arr[k];
                }
                //将a[i]放到正确位置上
                arr[k+1] = temp;
            }

        }
    }
}
